Skip to content

docs(best-practices): §2 spine-vs-membrane split — close the lance-graph #592 coordination loop#102

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/ogar-best-practices-bbb-barrier
Jun 22, 2026
Merged

docs(best-practices): §2 spine-vs-membrane split — close the lance-graph #592 coordination loop#102
AdaWorldAPI merged 1 commit into
mainfrom
claude/ogar-best-practices-bbb-barrier

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented Jun 22, 2026

Copy link
Copy Markdown
Owner

What

Closes the OGAR-side coordination loop with lance-graph #592 (merged). That PR closed ISS-CONTRACT-APP-PREFIX-MIRROR by mirroring OGAR #97's PortSpec::APP_PREFIX + render_classid_for into lance_graph_contract::ogar_codebook as AppPrefix + render_classid_for_concept — wire-compat, parity-pinned, no ogar-vocab dep (BBB-safe).

The companion change owed on the OGAR side — the spine-vs-membrane import-path distinction in OGAR-CONSUMER-BEST-PRACTICES.md §2 — lands here.

§2 split — spine vs membrane

New §2 preface block pins the BBB-barrier rule:

Crate type Allowed OGAR deps Canonical lookup path
spine-internal (lance-graph-*, ogar-vocab, ogar-ontology, ogar-class-view) ogar-vocab · ogar-ontology · lance-graph-* ogar_vocab::ports::*Port
membrane / customer binary (woa-rs, smb-office-rs, medcare-realtime) — enforced by allow-lists (woa-rs Iron Rule 1, etc.) lance-graph-contract only lance_graph_contract::ogar_codebook

Both paths return identical classids — the choice is dep-tree posture, not concept identity.

Pattern 1 split into 1a (spine) + 1b (membrane):

// 1a — spine
let cid = HealthcarePort::class_id("Patient");                    // Some(0x0901)
// 1b — membrane (BBB-safe)
let cid = canonical_concept_id("patient");                        // Some(0x0901)

Pattern 2 split into 2a (spine) + 2b (membrane):

// 2a — spine
let render = HealthcarePort::APP_PREFIX | (cid as u32);           // 0x0005_0901
// 2b — membrane (per #592)
let render = render_classid_for_concept(AppPrefix::Healthcare, "patient"); // Some(0x0005_0901)

Pattern 2b cites #592, names the parity test app_prefixes_match_ogar_allocation_table as the drift fuse, and shows the 6-app worked-examples mirror.

Incidental

Replaced the existing tick/cross markers (CANONICAL vs ANTI labels in code-comment annotations) with plain text labels throughout §2 + §3 + Pattern 3. Same semantic distinction, cleaner doc.

Out of scope

  • Patterns 3 (authorize) + 4 (migration), §3 anti-pattern catalogue, §4 worked Medcare narrative — unchanged; the membrane variant inherits from the new 1b/2b without further branching.
  • §5 trigger phrases — extended (added BBB-barrier, contract::ogar_codebook, AppPrefix, render_classid_for_concept, membrane consumer, spine vs membrane).
  • §6 cross-refs — sharpened #591 entry (surfaced the gap), added #592 entry (closed it).

Status

Doc-only. Closes the consumer/membrane half of the ISS-CONTRACT-APP-PREFIX-MIRROR coordinated fix (the contract/lance-graph half landed in #592).

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

…aph #592 coordination loop

PR #592 (parallel session) closed `ISS-CONTRACT-APP-PREFIX-MIRROR` by
mirroring OGAR #97's `PortSpec::APP_PREFIX` / `render_classid_for` into
`lance_graph_contract::ogar_codebook` as `AppPrefix` +
`render_classid_for_concept` (wire-compat, parity-pinned, no `ogar-vocab`
dep). Its coordination note left the OGAR-side companion — the
spine-vs-membrane import-path distinction in OGAR #100 §2 — to this
session.

This commit closes that loop. Changes to docs/OGAR-CONSUMER-BEST-PRACTICES.md:

§2 — new preface block: pins the BBB-barrier rule (spine-internal crates
freely depend on `ogar-vocab`; membrane crates restricted to
`lance-graph-contract` only), with the allowed-deps × canonical-path
table. Both paths return identical classids — the choice is dep-tree
posture, not concept identity.

Pattern 1 split — Pattern 1a (spine, `ogar_vocab::ports::*Port::class_id`)
+ Pattern 1b (membrane, `lance_graph_contract::ogar_codebook::canonical_concept_id`).

Pattern 2 split — Pattern 2a (spine, `*Port::APP_PREFIX | concept`) +
Pattern 2b (membrane, `AppPrefix::*.render(cid)` or
`render_classid_for_concept(AppPrefix::*, name)` — the one-call helper).
Cites lance-graph #592, names the parity test
`app_prefixes_match_ogar_allocation_table` as the drift fuse.

§5 trigger phrases — extended with `BBB-barrier` ·
`contract::ogar_codebook` · `canonical_concept_id` · `AppPrefix` ·
`render_classid_for_concept` · `lance_graph_contract::ogar_codebook` ·
`membrane consumer` · `spine vs membrane`.

§6 cross-refs — sharpened lance-graph #591 entry (surfaced the gap) and
added lance-graph #592 entry (closed it with the membrane mirror).

Patterns 3 + 4, §3 anti-pattern catalogue, §4 worked Medcare migration
narrative — unchanged (they're correct as-is; the membrane variant
inherits from the new 1b/2b without further branching).

Docs-only. Closes the consumer/membrane half of the
ISS-CONTRACT-APP-PREFIX-MIRROR coordinated fix.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYvNjD8M8LMNYbRy3gq2FP
@AdaWorldAPI AdaWorldAPI force-pushed the claude/ogar-best-practices-bbb-barrier branch from 3effeae to aaf1f3f Compare June 22, 2026 20:05
@AdaWorldAPI AdaWorldAPI merged commit a4f77df into main Jun 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants